/**
   CS 305 & 503, Data Structures and Algorithms
   Programming Assignment 3, Fall 2010

   An interface for a simple binary tree.   
 */



interface BinaryTree<T extends Comparable<T>> {

  /**
     Return this binary tree's left child.

     @return This binary tree's left child.

     @throws NoSuchElementException if this binary tree is emtpy.
   */

  BinaryTree<T> leftChild();


  /**
     Determine if a binary tree is empty.

     @return True iff the callee's empty.
   */

  boolean isEmpty();


  /**
     Return a binary tree's right child.

     @return The callee's right child.

     @throws NoSuchElementException if this binary tree is emtpy.
   */

  BinaryTree<T> rightChild();


  /**
     Determine a binary tree's value.

     @return The value stored at the binary tree's root.

     @throws NoSuchElementException if this binary tree is emtpy.
   */

  T value();
  }


// $Log: BinaryTree.java,v $
// Revision 1.2  2010/11/19 02:52:09  rclayton
// Add a type parameter for the value type.
//
// Revision 1.1  2010/11/10 02:05:43  rclayton
// Initial revision
//
